Computer network traffic is normally sent unsecured without encryption or strong authentication of the sender and receiver. This allows the traffic to be intercepted, inspected, modified, or redirected. Either the sender or the receiver can falsify their identity. In order to allow private traffic to be sent in a secured manner, a number of security schemes have been proposed and are in use. Some are application dependent, as with a specific program performing password authentication. Others, such as (TLS), are designed to provide comprehensive security to whole classes of traffic such as web pages (e.g., Hypertext Transfer Protocol (HTTP)) and file transfers, e.g., File Transfer Protocol (FTP).
Internet Security (IPsec) was developed to address a broader security need. As the majority of network traffic today is over Internet Protocol (IP), IPsec was designed to provide encryption and authentication services to this type of traffic regardless of the application or transport protocol. A standard IPsec datagram in tunnel mode can be used to provide Virtual Private Networking (VPN) and other security functions. In standard IPsec tunnel mode processing, the entire content of an original IP packet is encrypted and encapsulated inside another IP packet, namely, an IPsec packet. The IPsec packet is sealed with an Integrity Check Value (ICV) which authenticates a sender and prevents modification of the packet in transit.
Unlike a standard IP packet or other types of IPsec packets (e.g., transport mode packets), an IPsec tunnel mode packet has its original IP header encapsulated and encrypted as well as its original IP payload. This allows a source and a destination address of the IPsec tunnel mode packet to be different from those of the encapsulated IP packet. This in turn permits a secure IP tunnel to be formed through which the IPsec tunnel packet is routed.
When the IPsec tunnel mode packet arrives at its destination it goes through an authentication check. The authentication check includes validation of the IPsec tunnel mode packet header, and an authentication of the IP packet. The authentication of the IP packet includes performing a cryptographic hash such as MDS or SHA-1. A mismatched hash value is used to identify whether the IP packet was damaged in transit or whether an improper key was used. When the IPsec header of the IPsec tunnel mode packet is validated, the IPsec header is stripped off and the original IP packet is restored in the clear, including the original header with original source and destination addresses.
Standard IPsec implementations require IP addresses be included in the ICV. Consequently, any modification (e.g., translation) to an IP address will cause the integrity check to fail when verified by a recipient. Since the ICV incorporates a secret key which is unknown by intermediate networking devices, such as an intermediate router used for network load balancing or resilient routing, in an event such a device modifies an IP address the device is unable to re-compute the ICV. Accordingly, standard IPsec implementations are not compatible with several common networking functions. Such IPsec implementations are limited to networking situations where a source and a destination networks are reachable without modifying an IP address.
A solution is described in a U.S. Provisional Patent Application No. 60/756,765 entitled SECURING NETWORK TRAFFIC USING DISTRIBUTED KEY GENERATION AND DISSEMINATION OVER SECURE TUNNELS, filed Jan. 6, 2006, assigned to CipherOptics, Inc. This solution overcomes the limitation by copying an IP header of an outgoing packet in an outer header of an IPsec tunnel mode packet. More specifically, an original source IP address and an original destination IP address of an encrypted outgoing packet are copied to the outer header of the IPsec tunnel mode packet. By copying the addresses to the outer header resulting in an IPsec-like packet, there is greater flexibility in handling such a packet. The IPsec-like packet is suited for a number of networking situations previously unsuitable for an IPsec tunnel mode packet.
For example, in a network situation, such as network load sharing and resilient routing where more than one physical router receives a packet, the packet travels down different network paths and between different internetworking devices. By copying the original source IP address and the original destination IP address of the encrypted outgoing packet copied to the outer header, the IPsec-like packet is routed according to its original addresses. That is, the IPsec-like packet is not exclusively routed according to IPsec tunnel mode addresses of the IPsec tunnel mode packet.
This solution by its very nature makes a secured network known. There are several instances where it is desirable or even necessary that the secured network is unknown or is otherwise hidden. One such instance is network security. Typically, packets from one secured network to another secured network traverse an unsecured network. Once a packet leaves a secured network and enters into an unsecured network, the packet can be intercepted and inspected, e.g., using a packet analyzer or “sniffer.” Inspecting an IPsec-like packet with a copied source address and a copied destination address reveals identities of both the first secured network and the second secured network. As such, an implementation other than copying an IP header of an outgoing packet to an outer header of an IPsec tunnel mode packet is desirable in terms of providing network security.
Another such instance is address space conservation. Typically, a secured network has a limited number of available addresses. To conserve addresses, a network secured network uses private addresses. By agreement private addresses are freely usable by any network with the exception that packets addressed with private addresses cannot be routed in a public network, e.g., the Internet. That is to say, the use of private addresses is limited to a private network, e.g., a remote office. As such, an implementation other than copying an IP header of an outgoing packet to an outer header of an IPsec tunnel mode packet is necessary in terms of conserving addresses.